13
תגובות

בעיה בכתיבה לקובץ

פתח zacharya ,
פתחתי בעזרת fopen עם ההרשאה w+, עכשיו אבל אז הוא מוחק את כל מה שכתוב וכותב את מה שאמרתי, ולא כותב את מה שאמרתי בהתחלה וזה.

13 תשובות

avatar ענה Michael ב 15 ליוני 2013 #

http://php.net/manual/en/function.fopen.php

'w+' Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.

אחרי שהבנת מה שכתוב שם, תנסה r+

avatar ענה zacharya ב 15 ליוני 2013 #

ניסיתי כבר, אותה תוצאה.

avatar ענה yonikal56 ב 15 ליוני 2013 #

תנסה רק r אם אתה רק רוצה להציג ממנו ולא גם לכתוב אליו גם

avatar ענה zacharya ב 15 ליוני 2013 #

R לא עובד בכלל.

avatar ענה yonikal56 ב 15 ליוני 2013 #

מה אתה רוצה לעשות?

avatar ענה zacharya ב 16 ליוני 2013 #

אני מנסה לכתוב לקובץ כאשר הכתיבה היא לתחילתו אבל בלי שהוא ימחק את השאר.

avatar ענה intval ב 16 ליוני 2013 #

אתה הולך לכתובת הזו
ומחפש בטבלה של mode את האופציה שאתה בדיוק רוצה. רמז: זו השורה השניה.

avatar ענה zacharya ב 16 ליוני 2013 #

כמו שאמרתי, ניסיתי כבר r+.

avatar ענה intval ב 16 ליוני 2013 #

לא ראיתי בתגובות שלך שום על זה.
תראה את הקוד ואיך ניסית. הבעיה יכולה להיות במקום אחר.
חוץ מזה, אתה תמיד יכול לקרוא את כל הקובץ, לעשות חיבור וחיסור ב PHP ולכתוב את כל הקובץ מחדש עם תוכן חדש.

avatar ענה zacharya ב 16 ליוני 2013 #

ראה תגובה על תגובת מיכאל ^^

$op = fopen("text.txt", "r+");
  fwrite($op, $_POST['name'] . " - " . $date . " : " . $_POST['message']);

avatar ענה intval ב 17 ליוני 2013 #

הבעיה היא שלא משנה איפה תציב את הסמן, כאשר תתחיל הכתיבה לקובץ - התוכן שהיה מתחת לסמן ימחק ותוכן חדש יכתב מעליו. מבחינתך זה אומר שתצטרך קודם לקרוא את התוכן של הקובץ ואז לכתוב את התוכן החדש שתרצה.

define('FILENAME', 'x.txt');
$prepend = time();
file_put_contents(FILENAME, $prepend . file_get_contents(FILENAME));

avatar ענה zacharya ב 17 ליוני 2013 #

לא הצלחתי להבין את חלק השני של הקוד, הסבר?

avatar ענה intval ב 17 ליוני 2013 #

וככה?

$existingText = file_get_contents('x.txt');
$textToPrependInTheBeginning = 'מה קורה אחינו?';
$newText = $textToPrependInTheBeginning . $existingText;
file_put_contents('x.txt', $newText);


file_get_contents
file_put_contents